package io.gitee.minelx.filesystem.provider;

import java.io.InputStream;
import java.io.OutputStream;
import java.nio.file.StandardOpenOption;

class NotImplementedPathMethodProvider implements PathMethodProvider {

	private static final NotImplementedPathMethodProvider INSTANCE = new NotImplementedPathMethodProvider();

	private NotImplementedPathMethodProvider() {
	}

	@Override
	public OutputStream openOutputStream(StandardOpenOption openOption) {
		throw new UnsupportedOperationException("NotImplementedPathMethodProvider.openOutputStream is not implemented for now.");
	}

	@Override
	public InputStream openInputStream() {
		throw new UnsupportedOperationException("NotImplementedPathMethodProvider.openInputStream is not implemented for now.");
	}

	@Override
	public void createFile() {
		throw new UnsupportedOperationException("NotImplementedPathMethodProvider.createFile is not implemented for now.");
	}

	@Override
	public void deleteFile() {
		throw new UnsupportedOperationException("NotImplementedPathMethodProvider.deleteFile is not implemented for now.");
	}

	@Override
	public void createDirectory() {
		throw new UnsupportedOperationException("NotImplementedPathMethodProvider.createDirectory is not implemented for now.");
	}

	@Override
	public boolean exists() {
		throw new UnsupportedOperationException("NotImplementedPathMethodProvider.exists is not implemented for now.");
	}

	@Override
	public void deleteDirectory() {
		throw new UnsupportedOperationException("NotImplementedPathMethodProvider.deleteDirectory is not implemented for now.");
	}

	@Override
	public boolean isFile() {
		throw new UnsupportedOperationException("NotImplementedPathMethodProvider.isFile is not implemented for now.");
	}

	@Override
	public boolean isDirectory() {
		throw new UnsupportedOperationException("NotImplementedPathMethodProvider.isDirectory is not implemented for now.");
	}

	@Override
	public String[] listDir() {
		throw new UnsupportedOperationException("NotImplementedPathMethodProvider.listDir is not implemented for now.");
	}

	@Override
	public void rename(String name) {
		throw new UnsupportedOperationException("NotImplementedPathMethodProvider.rename is not implemented for now.");
	}

	@Override
	public String uri() {
		throw new UnsupportedOperationException("NotImplementedPathMethodProvider.uri is not implemented for now.");
	}

	static NotImplementedPathMethodProvider get() {
		return INSTANCE;
	}
}
